package com.softer.wxzj.mapper;

import com.softer.wxzj.entity.FileClassify;
import com.softer.wxzj.entity.MaintenanceObject;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface MaintenanceObjectMapper {
    int deleteByPrimaryKey(String id);

    int insert(MaintenanceObject record);

    int insertSelective(MaintenanceObject record);

    MaintenanceObject selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(MaintenanceObject record);

    int updateByPrimaryKey(MaintenanceObject record);

    /**
     * 获取公共设施设备分类的左侧三级菜单
     *
     * @param id 父级ID
     * @return 三级菜单
     */
    List<FileClassify> getMaintenanceObjectList(String id);

    /**
     * 校验维修对象中是否用到该维修类别
     *
     * @param id 维修类别
     * @return 维修对象id列表
     */
    List<String> checkEquipment(String id);

    /**
     * 校验维修项目中是否用到该维修类别
     *
     * @param id 维修类别
     * @return 维修项目id列表
     */
    List<String> checkProject(String id);

    /**
     * 检验分类名称
     *
     * @param maintenanceObject 新建实体
     * @return 分类ID
     */
    String checkName(MaintenanceObject maintenanceObject);

    /**
     * 获取有效的公共设施设备分类的三级菜单
     * 用于维修资金使用的项目新建选择
     *
     * @param id   父级ID
     * @param type 是否应急项目
     * @return 三级菜单
     */
    List<FileClassify> getEffectiveMaintenanceObjectList(@Param("id") String id, @Param("type") String type);
}